#ifndef STATEOPTIONS_H
#define STATEOPTIONS_H

#include "Singleton.h"
#include "GameState.h"
#include "RenderableEntity.h"
#include "FadeEffect.h"
#include "MoveEffect.h"
#include "ScaleEffect.h"
#include "TimeLineEffect.h"
#include "TextEntity.h"

class StateOptions : public GameState, public Singleton<StateOptions>
{
private:
    enum eOptionsStates { Enter, Idle, Exit, ToStats };
    
    eOptionsStates m_eState;
    
    RenderableEntity* m_oBg;
    
    RenderableEntity* m_oTitleBg;
    TextEntity* m_oTitleText;
    
    TextEntity* m_oMusic;
    RenderableEntity* m_oMusicBG;
    RenderableEntity* m_oMusicMark;
    
    TextEntity* m_oSfx;
    RenderableEntity* m_oSfxBG;
    RenderableEntity* m_oSfxMark;
    
    TextEntity* m_oAccelerometer;
    TextEntity* m_oAccelerometerDisabled;
    RenderableEntity* m_oAccelerometerBG;
    RenderableEntity* m_oAccelerometerMark;
    
    TextEntity* m_oStats;

    RenderableEntity* m_oBack;

	TimeLineEffect* m_eOptionsEnter;
	TimeLineEffect* m_eOptionsExit;
        
public:
	StateOptions();
	~StateOptions();
	
	void loadContent();
	void unloadContent();
	void enter();
	void exit();
	void update(float dt);
	void render();
};

#endif